﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Xml;

namespace GerenteEBD
{
    /// <summary>
    /// Interaction logic for lista_pessoas.xaml
    /// </summary>
    public partial class lista_turmas : Page
    {
        public lista_turmas()
        {
            InitializeComponent();

            string appPath = Directory.GetCurrentDirectory();

            FonteDadosTurmas.Source = new Uri(appPath + @"\ebd.xml");            
        }

        private void NewTeamButton_Click(object sender, RoutedEventArgs e)
        {
            TeamsListBox.SelectedIndex = -1;
            txtCodigo.Text = String.Empty;
            txtNome.Text = String.Empty;
            txtEmail.Text = String.Empty;
            txtDataNascimento.Text = String.Empty;
        }

        private void SaveTeamsButton_Click(object sender, RoutedEventArgs e)
        {
            /*
             <pessoa>
                  <Codigo>1</Codigo>
                  <Nome>Janynne</Nome>
                  <Email>Gomes</Email>
                  <DataNascimento>20/03/1988</DataNascimento>
                  <Telefones>
                    <Telefone>
                      <Codigo>1</Codigo>
                      <Numero>99442384</Numero>
                      <DDD>33</DDD>
                      <Operadora>Vivo</Operadora>
                    </Telefone>
                  </Telefones>
                  <Enderecos>
                    <Endereco>
                      <Codigo>1</Codigo>
                      <Rua>Goiás</Rua>
                      <Numero>73</Numero>
                      <Complemento>Apt 201</Complemento>
                      <Bairro>Lourdes</Bairro>
                      <CEP>35032160</CEP>
                      <Observacao>Prédio verde, próximo a Igreja Assembléia de Deus da Goiás.</Observacao>
                    </Endereco>
                  </Enderecos>
             </pessoa>
             */

            string appPath = Directory.GetCurrentDirectory();

            string source = FonteDadosTurmas.Source.LocalPath; 

            // Get a handle on the source data file.
            XmlDocument doc = FonteDadosTurmas.Document;

            // Get a handle on the root node.
            XmlNode root = doc.SelectSingleNode("//ebd/turmas");

            // Attempt to find the Id in the data file.
            string xpath = "//turma[Codigo=" + txtCodigo.Text + "]";
            XmlNode currentNode = root.SelectSingleNode(xpath);

            // If currentNode is null, then we add a new team with the data entered.  If found,
            // we simply call the save method to persist the updated data to the data file.
            if (currentNode == null)
            {
                XmlNode novaTurma= doc.CreateElement("turma");
                XmlNode novoCodigo = doc.CreateElement("Codigo");
                XmlNode novoNome = doc.CreateElement("Nome");
                XmlNode novaIdadeMinima = doc.CreateElement("IdadeMinima");
                XmlNode novaIdadeMaxima = doc.CreateElement("IdadeMaxima");
                XmlNode novaDataCadastro = doc.CreateElement("DataCadastro");
                XmlNode novoCodigoDepartamento = doc.CreateElement("CodigoDepartamento");

                novoCodigo.InnerText = txtCodigo.Text;
                novoNome.InnerText = txtNome.Text;
                novaIdadeMinima.InnerText = txtNome.Text;
                novaIdadeMaxima.InnerText = txtNome.Text;
                novaDataCadastro.InnerText = DateTime.Now.ToString();
                novoCodigoDepartamento.InnerText = txtNome.Text;

                novaTurma.AppendChild(novoCodigo);
                novaTurma.AppendChild(novoNome);
                novaTurma.AppendChild(novaIdadeMinima);
                novaTurma.AppendChild(novaIdadeMaxima);
                novaTurma.AppendChild(novaDataCadastro);
                novaTurma.AppendChild(novoCodigoDepartamento);

                root.AppendChild(novaTurma);
            }

            // Salva as aletrações no arquivo
            FonteDadosTurmas.Document.Save(source);
        }

        private void DeleteTeamsButton_Click(object sender, RoutedEventArgs e)
        {
            // Get the physical path for saving later.
            string source = FonteDadosTurmas.Source.LocalPath;

            // Get a handle on the source data file.
            XmlDocument doc = FonteDadosTurmas.Document;

            // Get a handle on the root node.
            XmlNode root = doc.SelectSingleNode("//ebd/turmas");

            // Get the currently selected node within the source data file.
            string xpath = "//turma[Codigo=" + txtCodigo.Text + "]";
            XmlNode currentNode = root.SelectSingleNode(xpath);

            if (currentNode != null)
            {
                // Delete the record.
                root.RemoveChild(currentNode);

                // Save the changes.
                FonteDadosTurmas.Document.Save(source);
            }
        }
    }
}
